//-------------------------------------------------------------------
//	Copyright (c) 2010-2012 Zhirnov Andrey
//	This file is part of the "UXGEN" project.
//	See copyright notice in "Engine.h".
//-------------------------------------------------------------------

#ifndef _UX_OBJECT_MANAGER_H
#define _UX_OBJECT_MANAGER_H

#include <Includes.h>

namespace Engine
{
namespace CoreSystems
{
	
	//
	// Object Manager
	//

	class _EXPORT_ CObjectManager : public CEngBaseObject
	{
		friend class Engine::CoreSystems::CCore;

	private:
		CSceneObjectFactory	*	_pSOFactory;
		CGUIObjectFactory	*	_pGUIFactory;

	protected:
		CObjectManager();
		~CObjectManager();

		bool Init();

		// CEngBaseObject //
		virtual void Release();

	public:
		bool Clear();

		CGUIObjectFactory	*	GetGUIObjectFactory()	const	{ return _pGUIFactory; }
		CSceneObjectFactory	*	GetSceneObjectFactory()	const	{ return _pSOFactory; }
	};

//-------------------------------------------------------------------

}	// CoreSystems
}	// Engine

#endif	// _UX_OBJECT_MANAGER_H